1. Field of the Invention
This invention relates generally to computer systems, and more particularly to circuitry for interfacing and controlling data transfers between computer systems and peripheral devices.
2. Description of the Related Art
In recent years, computer manufacturers have been designing systems that provide users the ability to customize system features to match more closely their particular use requirements. Primarily, such customization has been made possible by the ease of connecting peripheral devices to a system. As is well known, a basic system typically includes a motherboard, a processor, random access memory (RAM), a hard drive, a floppy drive, a compact disc read-only memory (CD-ROM), a power supply and other miscellaneous circuitry. To enable users to further customize a system, the motherboard generally includes a number of connectors, such as, parallel port connectors, IDE connectors, and PCI connectors. Typically, IDE and PCI connectors are used to connect internal peripheral devices, and the parallel port connectors are used to connect external peripheral devices to the system. Generally, connections made by way of a parallel port connector are considered to be low-end connections which have significant performance limitations. On the other hand, connections made by way of PCI connectors utilize host adapter cards or controllers, which can provide communication using a higher-end SCSI protocol.
Although IDE and SCSI connections are commonly used for peripheral devices, a relatively new universal serial bus (USB) protocol has been gaining in popularity. Its popularity is particularly strong with casual computer users because the USB protocol is designed to more closely resemble a plug-and-play standard. That is, once a peripheral device is connected to a USB connector, that device will be ready for use without the typical setup and loading of drivers required for peripheral devices connected by way of other standards.
In response to USB""s popularity, peripheral device manufacturers have been developing USB capable devices which meet the requirements set by the USB standard. The Universal Serial Bus Specification, revision 1.1 (1998), is hereby incorporated by reference. To meet the requirements of USB however, manufacturers have essentially been forced to redesign the logic circuitry of many of their existing peripheral devices. In essence, the advent of USB is requiring manufacturers to separately design peripheral devices which are able to function in parallel port mode, IDE/ATAPI mode, SCSI mode, and USB mode.
For ease of discussion, FIG. 1 illustrates a system diagram 10 including a computer system 12 and associated peripheral devices. The computer system 12 can have a number of peripheral devices, including an internal peripheral device 16a and connections to external peripheral devices, such as 16b. When the external peripheral device 16b is implemented, an external cable 14 is used to connect up to the computer system 12. Typically, the external cable 14 supports either a parallel port connection or a SCSI connection. As mentioned above, most internal peripheral devices are connected to the motherboard (now shown) of the computer system 12 by way of an IDE connector. Internal SCSI peripheral devices can also be used in the computer system 12, however, internal SCSI peripheral devices are typically more expensive and are generally only used in higher-end systems.
Accordingly, manufacturers of peripheral devices, such as optical disc-type peripheral recordable (CD-RW) devices), are required to specially design logic circuitry that is compatible with each specific data transfer protocol. As a result, each peripheral device, depending upon whether it is an internal device or an external device, needs to be uniquely designed to carry out the functions for the particular implementation.
To meet the specification requirements of USB, manufacturers of such peripheral devices are now integrating additional circuitry into peripheral devices that meet all of the required functionality and memory buffering necessary for USB data transfers. Although the design of specialized USB circuitry for those external peripheral devices is well known, when the manufacturer of peripheral devices design the circuitry for an external peripheral device, the internal peripheral device will have distinct logic circuitry to complete transfers using a different protocol, such as the IDE/ATAPI protocol. Consequently, the manufacturer of peripheral devices has now been driven to separately design, maintain, and revise the circuitry for USB external peripheral and internal IDE/ATAPI peripheral devices. As a result, the cost to the peripheral device manufacturer is substantially increased because the circuitry used for one protocol can not be used or shared by another protocol.
In view of the foregoing, there is a need for circuitry that can shared between different data transfer protocols, and can be enabled to operate in a selected protocol. There is also a need for logic circuitry that will enable one logic circuit design to be used interchangeably in internal peripheral device applications and external peripheral device applications.
Broadly speaking, the present invention describes peripheral device circuitry, and more particularly, controller circuitry that enables communication of peripheral devices using more than one communication protocol. In one embodiment, the controller circuitry is intelligently designed to implement communication in either an IDE/ATAPI mode or in a USB mode, and the controller circuitry utilized for USB mode operation is configured to share control circuitry used for IDE/ATAPI mode communication. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a controller for use in a mass storage peripheral device is disclosed. The controller includes a block decoder/encoder for processing data to and from a media of the mass storage peripheral device. Further included is an interface that is configured to process data and control signals for selectively communicating data to and from the mass storage peripheral device during operation in a first mode. Logic that is configured to process data and control signals for selectively communicating data to and from the mass storage peripheral device during operation in a second mode is also included. The logic is preferably configured to utilize data transfer control logic implemented by the interface.
In another embodiment, a controller for use in a compact disc peripheral device is disclosed. The controller includes a block decoder/encoder for processing data to and from a media of the compact disc peripheral device. An ATAPI interface is also provided and is configured to process data and control signals for selectively communicating data to and from the compact disc peripheral device during operation in an ATAPI mode. Universal serial bus (USB) logic is configured to process data and control signals for selectively communicating data to and from the compact disc peripheral device during operation in a USB mode. The USB logic is configured to utilize data transfer control logic implemented by the ATAPI interface. Accordingly, one controller can be integrated into either an external peripheral device that communicates over a USB connection in the USB mode, or into an internal peripheral device that communicates over an IDE connection in the ATAPI mode.
In yet another embodiment, a method for making a controller for use in a peripheral device is disclosed. The controller is capable to operating the peripheral device in one of an ATAPI mode and a universal serial bus (USB) mode. The method includes: (a) integrating an ATAPI interface to the controller, the ATAPI interface is configured to control data transfers to and from the peripheral device in the ATAPI mode; and (b) integrating a USB logic block to the controller, the USB logic block is configured to facilitate data transfers to and from the peripheral device in the USB mode, the USB logic block being configured to share data transfer control from the ATAPI interface to complete the data transfers in the USB mode.
In still another embodiment, a controller for use in a compact disc rewritable (CD-RW) peripheral device is disclosed. The controller includes a block decoder/encoder for processing data to and from a media of the CD-RW peripheral device. An ATAPI interface that is configured to process data and to control signals for selectively communicating data to and from the CD-RW peripheral device during operation in an ATAPI mode is also included. Universal serial bus (USB) logic is further provided to process data and control signals for selectively communicating data to and from the CD-RW peripheral device during operation in a USB mode. The USB logic is configured to utilize data transfer control logic implemented by the ATAPI interface. Preferably, the USB logic includes a USB pad cell that provides connection to and from a USB cable and the ATAPI interface. Part of the USB logic includes USB core logic that is in communication with the USB pad cell, the ATAPI interface, and a microprocessor interface.
In another embodiment, a controller for use in an optical storage device is provided. The controller includes a block decoder/encoder for processing data to and from a media of the optical storage device. An ATAPI interface is also provided and is configured to process data and control signals for selectively communicating data to and from the optical storage device during operation in an ATAPI mode. Universal serial bus (USB) logic is configured to process data and control signals for selectively communicating data to and from the optical storage device during operation in a USB mode. The USB logic is configured to utilize data transfer control logic implemented by the ATAPI interface. Accordingly, one controller can be integrated into either an external peripheral device that communicates over a USB connection in the USB mode, or into an internal peripheral device that communicates over an IDE connection in the ATAPI mode. The optical storage device can be any type of optical storage device, such as, for example a CD-RW, a CD-ROM, a CD-R, a DVD, and the like. Further, the optical storage device can be in the form of an internal or external peripheral device.